<?

/**
 * Interfejs IDatabase - zawiera metody analogiczne do ADO
 *
 */
interface IDatabase {
	/**
	 * Metoda getRow - zwraca wiersz tabeli na podstawie przekazanego zapytania SQL
	 *
	 * @param string $stmt
	 * @return array $result
	 */
	public function getRow($stmt);
	
	/**
	 * Metoda getAll - zwraca tablice rekordow na podstawie przekazanego zapytania SQL
	 *
	 * @param string $stmt
	 * @return array $result
	 */
	public function getAll($stmt);
	
	/**
	 * Metoda getOne - zwraca pole z tabeli na podstawie przekazanego zapytania SQL
	 *
	 * @param string $stmt
	 * @return $result
	 */
	public function getOne($stmt);
	
	/**
	 * Metoda getCol - zwraca kolumne z tabeli na podstawie przekazanego zapytania SQL
	 *
	 * @param string $stmt
	 * @return array $result
	 */
	public function getCol($stmt);
	
	/**
	 * Metoda Execute - wykonuje przekazane zapytanie SQL, zwraca ADORecordset
	 *
	 * @param string $stmt
	 * @param array $values
	 * @return ADORecordset $result
	 */
	public function execute($stmt, $values = array());
	
	/**
	 * Metoda startTrans - Rozpoczyna transakcje w bazie danych
	 *
	 */
	public function startTrans();
	
	/**
	 * Metoda completeTrans - konczy transakcje, w zaleznosci od poprawnosci zapytan robi Commit albo Rolback
	 *
	 */
	public function completeTrans();
	
	/**
	 * Metoda prepare - buduje zapytanie SQL na podstawie stringu
	 *
	 * @param string $stmt
	 * @return string $stmt
	 */
	public function prepare($stmt);
	
	/**
	 * Metoda nextID - dostaje w parametrze nazwe sekwencji / tabeli, z ktorej wyciaga kolejny identyfikator
	 *
	 * @param string $table
	 */
	public function nextID($table);
	
	/**
	 * Metoda qstr quotuje w odpowiedni sposob przekazany string
	 *
	 * @param string $strVal
	 */
	public function qstr($strVal);
}
?>
